﻿// testUpdate.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include "../updateDll/Updater.h"
#include "json/json.h"
#include "base.h"
#include <WinSock2.h>
int main()
{
		 
    std::cout << "Hello World,main!"<<std::endl;
	Sleep(10000);
	  std::string url = "http://172.16.8.67:8090/version.xml";
	  Update("-wait 5", [](const void* data, const char* event, const char* msg) {
		  std::cout << "update hello" << std::endl;
		  std::cout << msg << std::endl;
		  std::cout << data << std::endl;
		  }, NULL);
	 // std::string msg = "{\"detail\":[{\"files\":[{\"file\":\"downtest.txt\",\"size\":0}],  \"lversion\":\"1.0\",\"name\":\"2.0\",\"sversion\":\"2.0\"}], \"message\":\"\",\"success\":true,\"update\":true}";
	 
	 //Check(url.c_str(), [](const void* data, const char* event, const char* msg) {
		//std::cout << msg << std::endl;
		//Json::Reader reader;
		//Json::Value value;
		//if (reader.parse(msg, value))
		//{
		//	bool  update = value["update"].asBool();
		//	if (update) {
		//		Json::Value details = value["detail"]; //取出value对象中的data对象，对象嵌套的一种方式
		//		int detailCount = details.size();
		//		Json::Value files = details[0]["files"];
		//		if (detailCount > 0 && files && files.size() > 0) {
		//			for (int i = 0; i < files.size(); ++i) {
		//				std::cout << "fileName " << i + 1 << ": ";
		//				std::cout << files[i]["file"].asString() << std::endl;
		//			}
					/*DownLoad("http://172.16.8.67:8090/version.xml", [](const void* data, const char* event, const char* msg) {
						std::cout << "down hello" << std::endl;
						std::cout << msg << std::endl;
						Json::Reader reader;
						Json::Value value;
						if (reader.parse(msg, value)) {
							if (value["success"].asBool()) {
								std::cout << "下载完成,开始更新" << std::endl;
								Update("-wait 5", [](const void* data, const char* event, const char* msg) {
									std::cout << "update hello" << std::endl;
									std::cout << msg << std::endl;
									std::cout << data << std::endl;
									}, NULL);
							}
							else {
								std::cout << "正在下载" <<value["file"].asString()<< std::endl;
							}
						}
						}, NULL);*/
	/*			}
			}
		}
		}, NULL);  */
	return 0;
}

// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单

// 入门使用技巧: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件，或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来，若要再次打开此项目，请转到“文件”>“打开”>“项目”并选择 .sln 文件
